使用e.keyCode
查詢按下哪個按鈕,再用keydown
事件來觸發。
ex. 做三個圓球,分別按下按鈕1、2、3觸發往上移動:
<body>
<ul>
<li class="ball ball-1"></li>
<li class="ball ball-2"></li>
<li class="ball ball-3"></li>
</ul>
<style>
.ball{
width: 50px;
height: 50px;
border-radius:50% 50%;
position: absolute;
bottom: 0;
transition: all 1s cubic-bezier(1, 0.08, 0, 1.19);
display: block;
background: #000;
}
.ball-1{left: 30px; }
.ball-2{left: 230px; }
.ball-3{left: 430px; }
</style>
</body>
var body = document.body;
switch
會比if
更適合keyCode
用來辨識案件編號querySelector
選擇ball1、2、3break
結束每一分段function goBall(e){
switch(e.keyCode){
case 49:
document.querySelector('.ball-1').style.bottom = '2000px'
break;
case 50:
document.querySelector('.ball-2').style.bottom = '2000px'
break;
case 51:
document.querySelector('.ball-3').style.bottom = '2000px'
break;
}
}
body.addEventListener('keydown',goBall,false)
使用blur
來對失焦不在選定的情況下,進行事件觸發,常用來表單沒填到來進行提醒之類。
ex. 戶外活動交通工具的人數統計,再輸入格沒輸入或直接無值按下按鈕來觸發事件
<body>
<div>
<h1>戶外活動交通工具的人數統計</h1>
<p>一台汽車可載4人,機車可載2人</p>
<p>目前交通工具,汽車 <input type="text" id="carNumId" >台 ,機車 <input type="text" id="motoNumId"> 台</p>
<p><input type="button" Id="countId" value="計算中">,計算可載總人數是 <em id="totalId" class="tag"></em> 位。</p>
</div>
</body>
parseIn
來解析字串變成數字,getElementById抓取input的ID,及其輸入的值function count(){
var carPeople = 4;
var motoPeople = 2;
var carNum = parseInt(document.getElementById('carNumId').value)*carPeople;
var motoNum = parseInt(document.getElementById('motoNumId').value)*motoPeople;
document.getElementById('totalId').textContent = carNum + motoNum
}
function checkContent(e){
var str = e.target.value;
if(str==''){
alert('此欄位不可為空')
}
}
var el = document.getElementById('countId');
el.addEventListener('click',count,false);
var car = document.getElementById('carNumId');
car.addEventListener('blur',checkContent,false);
var moto = document.getElementById('motoNumId');
moto.addEventListener('blur',checkContent,false);
完成練習,附表
<body>
<div>
<h1>戶外活動交通工具的人數統計</h1>
<p>一台汽車可載4人,機車可載2人</p>
<p>目前交通工具,汽車 <input type="text" id="carNumId" >台 ,機車 <input type="text" id="motoNumId"> 台</p>
<p><input type="button" Id="countId" value="計算中">,計算可載總人數是 <em id="totalId" class="tag"></em> 位</p>
</div>
<script>
function count(){
var carPeople = 4;
var motoPeople = 2;
var carNum = parseInt(document.getElementById('carNumId').value)*carPeople;
var motoNum = parseInt(document.getElementById('motoNumId').value)*motoPeople;
document.getElementById('totalId').textContent = carNum + motoNum
}
function checkContent(e){
var str = e.target.value;
if(str==''){
alert('此欄位不可為空')
}
}
var el = document.getElementById('countId');
el.addEventListener('click',count,false);
var car = document.getElementById('carNumId');
car.addEventListener('blur',checkContent,false);
var moto = document.getElementById('motoNumId');
moto.addEventListener('blur',checkContent,false);
</script>
</body>